<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <!-- 1、引入依赖 -->
  <script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>
  <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>
  <script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>

  <div id="app"></div>

  <!-- 2、编写react代码 -->
  <script type="text/babel">

    class App extends React.Component {
      constructor(props){
        super(props)
        this.state = {
          names: ['blob', 'jerry', 'mack', 'jany'],
          numbers: [110,123,135,167, 56, 34, 89]
        }

      }


      // 所有组件必须实现render方法
      render() {
        const { names, numbers } = this.state

        /**
         * 列表渲染  
         * React中没有Vue模板语法中的v-for，需要通过JavaScript代码的方式组织数据，转成jsx
         * React 中展示列表最多的方式就是使用数组的map高阶函数
        */

        // 必须用return返回
        return (
          // {}语法  里面可以是表达式
          <div>
            <h2>名字列表</h2>
            <ul>
                {
                  names.map((item, index) => {
                    return (
                      <li key={index}>{item}</li>
                    )
                  })
                }
            </ul>
            <h2>数字列表</h2>
            {/* 展示大于50的数据*/}
            <ul>
              {
                numbers.filter(item => item > 50).map((mapItem, mapIndex) => {
                  return (
                    <li key={mapIndex}>{mapItem}</li>
                  )
                })
              }
            </ul>
          </div>
        )
      }
    }


    ReactDOM.render(<App/>, document.getElementById('app')) 
  </script>
</body>
</html>